package command;

import java.util.ArrayList;
import java.util.List;

public class LitiasisCommand {

	private String dolorAbdominal;
	private String lugarDolor;
	private boolean vomito;
	private String fiebre;
	private boolean escalofrios;
	private boolean shockHipobolemico;
	private boolean irritacionPeritoneal;
	private boolean ictericia;
	private boolean coluria;
	private boolean acolia;

	private String idTipoDolorAbdominal;
	private String idLugarDolorAbdominal;
	private String idFiebre;

	// aca guardo el diagnostico cuando aplican reglas con dos sintomas
	private List<String> diagnosticos1 = new ArrayList<String>();

	// aca guardo el diagnostico cuando aplican reglas con los cuatro sig
	// sintomas
	private List<String> diagnosticos2 = new ArrayList<String>();

	// aca guardo el diagnostico con todos los sintomas.
	private List<String> diagnosticos3 = new ArrayList<String>();

	public String getDolorAbdominal() {
		return dolorAbdominal;
	}

	public void setDolorAbdominal(String dolorAbdominal) {
		this.dolorAbdominal = dolorAbdominal;
	}

	public String getLugarDolor() {
		return lugarDolor;
	}

	public void setLugarDolor(String lugarDolor) {
		this.lugarDolor = lugarDolor;
	}

	public boolean isVomito() {
		return vomito;
	}

	public void setVomito(boolean vomito) {
		this.vomito = vomito;
	}

	public String getFiebre() {
		return fiebre;
	}

	public void setFiebre(String fiebre) {
		this.fiebre = fiebre;
	}

	public boolean isEscalofrios() {
		return escalofrios;
	}

	public void setEscalofrios(boolean escalofrios) {
		this.escalofrios = escalofrios;
	}

	public boolean isShockHipobolemico() {
		return shockHipobolemico;
	}

	public void setShockHipobolemico(boolean shockHipobolemico) {
		this.shockHipobolemico = shockHipobolemico;
	}

	public boolean isIrritacionPeritoneal() {
		return irritacionPeritoneal;
	}

	public void setIrritacionPeritoneal(boolean irritacionPeritoneal) {
		this.irritacionPeritoneal = irritacionPeritoneal;
	}

	public boolean isColuria() {
		return coluria;
	}

	public void setColuria(boolean coluria) {
		this.coluria = coluria;
	}

	public boolean isAcolia() {
		return acolia;
	}

	public void setAcolia(boolean acolia) {
		this.acolia = acolia;
	}

	public boolean isIctericia() {
		return ictericia;
	}

	public void setIctericia(boolean ictericia) {
		this.ictericia = ictericia;
	}

	public List<String> getDiagnosticos(int step, boolean clearList) {
		switch (step) {
		case 1:
			if(clearList) diagnosticos1.clear();
			return diagnosticos1;
		case 2:			
			if(clearList) this.diagnosticos2.clear();
			return diagnosticos2;
		case 3:
			if(clearList) this.diagnosticos3.clear();
			return diagnosticos3;
		default:
			return null;
		}
	}

	public String getIdTipoDolorAbdominal() {
		return idTipoDolorAbdominal;
	}

	public void setIdTipoDolorAbdominal(String idTipoDolorAbdominal) {
		this.idTipoDolorAbdominal = idTipoDolorAbdominal;
	}

	public String getIdLugarDolorAbdominal() {
		return idLugarDolorAbdominal;
	}

	public void setIdLugarDolorAbdominal(String idLugarDolorAbdominal) {
		this.idLugarDolorAbdominal = idLugarDolorAbdominal;
	}

	public String getIdFiebre() {
		return idFiebre;
	}

	public void setIdFiebre(String idFiebre) {
		this.idFiebre = idFiebre;
	}

	public void addDiagnostico(String diagnostico) {
		if (!diagnosticos3.contains(diagnostico))
			this.diagnosticos3.add(diagnostico);
	}

	/**
	 * 
	 * @param diagnostico
	 * @param tipo
	 *            indica el tipo de regla que se esta usando: 1 - para los dos
	 *            primeros sintomas 2 - idem 1 + los siguientes 4 3 - idem 2 +
	 *            los siguientes 4 (todos)
	 */
	public void addDiagnostico(String diagnostico, int tipo) {

		switch (tipo) {
		case 1:
			if (!diagnosticos1.contains(diagnostico))
				this.diagnosticos1.add(diagnostico);
			this.diagnosticos2.clear();
			this.diagnosticos3.clear();
			break;
		case 2:
			if (!diagnosticos2.contains(diagnostico))
				this.diagnosticos2.add(diagnostico);
			this.diagnosticos3.clear();
			break;
		case 3:
			if (!diagnosticos3.contains(diagnostico))
				this.diagnosticos3.add(diagnostico);
			break;
		}
	}

	public void clearDiagnosticos() {
		this.diagnosticos1.clear();
		this.diagnosticos2.clear();
		this.diagnosticos3.clear();
	}

}
